/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cl.orientesalud.dao.impl;

import cl.orientesalud.dao.Dao;
import cl.orientesalud.dao.TipoPagoDao;
import cl.orientesalud.dominio.Paciente;
import cl.orientesalud.dominio.TipoPago;
import cl.orientesalud.util.OrienteLog;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;

/**
 *
 * @author nicolas
 */
public class TipoPagoDaoImpl extends Dao implements TipoPagoDao{
    Logger logger=OrienteLog.obtenerLogger(TipoPagoDaoImpl.class);
    @Override
    public List<TipoPago> obtenerTiposPago() throws Exception {
        List<TipoPago> tipos=null;
        PreparedStatement pstmt=null;
        TipoPago tipo;
       ResultSet rs=null;
       String consulta="SELECT tp_id,"
               + "      tp_descripcion "
               + "from pago_tipo ";
        try {
            logger.debug("Consulta:"+consulta);
            pstmt = conexion.preparedStatement(consulta);
            rs=pstmt.executeQuery();
            tipos=new ArrayList();
            while(rs.next()){
                tipo=new TipoPago();
                tipo.setId(rs.getInt("tp_id"));
                tipo.setDescripcion(rs.getString("tp_descripcion"));
                
                tipos.add(tipo);
            }
        } catch (SQLException ex) {
            logger.error("Error:"+ex.getMessage());
            throw new Exception("Error en el sistema");
        }
       
        return tipos;
    }

    @Override
    public TipoPago obtenerTipo(TipoPago tipo) throws Exception {
       logger.debug("obteniendo tipo de pago:"+tipo);
       TipoPago retorno=null;
       PreparedStatement pstmt=null;
       ResultSet rs=null;
       String consulta="SELECT tp_id,"
               + "      tp_descripcion "
               + "from pago_tipo "
               + "where tp_id=?";
       logger.debug("consulta:"+consulta);
        try {
            pstmt = conexion.preparedStatement(consulta);
            pstmt.setInt(1, tipo.getId());
            rs=pstmt.executeQuery();
            if(rs.next()){
                retorno=new TipoPago();
                retorno.setId(rs.getInt("tp_id"));
                retorno.setDescripcion(rs.getString("tp_descripcion"));
                
                
            }
        } catch (SQLException ex) {
            logger.error("Error:"+ex.getMessage());
            throw new Exception("Error en el sistema");
        }
       return retorno;
    }
    
}
